﻿//-----------------------------------------------------------------------
// <copyright file="IEngineOperation.cs" company="tuliprules.org">
//     Copyright (c) 2010 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the IEngineOperation interface.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Engine.EngineOperation
{
    /// <summary>
    /// Represents an engine operation.
    /// </summary>
    public interface IEngineOperation
    {
        /// <summary>
        /// Performs the engine operation.
        /// </summary>
        /// <param name="facts">Collection of facts on which the operation may optionally act.</param>
        /// <returns>Indicates if the engine should start a new match-resolve-do cycle.</returns>
        bool Perform(ref object[] facts);
    }
}
